package course.examples.DataManagement.DataBaseExample; import android.app.ListActivity; import android.content.ContentValues; import android.database.Cursor; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.SimpleCursorAdapter; public class DatabaseExampleActivity extends ListActivity { private DatabaseOpenHelper mDbHelper; private SimpleCursorAdapter mAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Create a new DatabaseHelper mDbHelper = new DatabaseOpenHelper(this); // start with an empty database clearAll(); // Insert records insertArtists(); // Create a cursor Cursor c = readArtists(); mAdapter = new SimpleCursorAdapter(this, R.layout.list_layout, c, DatabaseOpenHelper.columns, new int[] { R.id._id, R.id.name }, 0); setListAdapter(mAdapter); Button fixButton = (Button) findViewById(R.id.fix_button); fixButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // execute database operations fix(); // Redisplay data mAdapter.getCursor().requery(); mAdapter.notifyDataSetChanged(); } }); } // Insert several artist records private void insertArtists() { ContentValues values = new ContentValues(); values.put(DatabaseOpenHelper.ARTIST_NAME, "Frank Sinatra"); mDbHelper.getWritableDatabase().insert(DatabaseOpenHelper.TABLE_NAME, null, values); values.clear(); values.put(DatabaseOpenHelper.ARTIST_NAME, "Lady Gaga"); mDbHelper.getWritableDatabase().insert(DatabaseOpenHelper.TABLE_NAME, null, values); values.clear(); values.put(DatabaseOpenHelper.ARTIST_NAME, "Jawny Cash"); mDbHelper.getWritableDatabase().insert(DatabaseOpenHelper.TABLE_NAME, null, values); values.clear(); values.put(DatabaseOpenHelper.ARTIST_NAME, "Ludwig van Beethoven"); mDbHelper.getWritableDatabase().insert(DatabaseOpenHelper.TABLE_NAME, null, values); } // Returns all artist records in the database private Cursor readArtists() { return mDbHelper.getWritableDatabase().query(DatabaseOpenHelper.TABLE_NAME, DatabaseOpenHelper.columns, null, new String[] {}, null, null, null); } // Modify the contents of the database private void fix() { // Sorry Lady Gaga :-( mDbHelper.getWritableDatabase().delete(DatabaseOpenHelper.TABLE_NAME, DatabaseOpenHelper.ARTIST_NAME + "=?", new String[] { "Lady Gaga" }); // fix the Man in Black ContentValues values = new ContentValues(); values.put(DatabaseOpenHelper.ARTIST_NAME, "Johnny Cash"); mDbHelper.getWritableDatabase().update(DatabaseOpenHelper.TABLE_NAME, values, DatabaseOpenHelper.ARTIST_NAME + "=?", new String[] { "Jawny Cash" }); } // Delete all records private void clearAll() { mDbHelper.getWritableDatabase().delete(DatabaseOpenHelper.TABLE_NAME, null, null); } // Close database @Override protected void onDestroy() { mDbHelper.getWritableDatabase().close(); mDbHelper.deleteDatabase(); super.onDestroy(); } }